﻿#pragma once

// ReSharper disable CppClangTidyModernizeUseNodiscard
#pragma once
#include "Material.h"
#include "Texture2D.h"
#include "Path.h"
#include "ShaderProgram.h"

class FDrawShadowDepthMaterial final
	: public FMaterial
{
public:

	const std::string& GetFsSrcCode() const override
	{
		static std::string CodeStr = R"(
			#version 410 core

			void main()
			{
			    
			}
		)";

		return CodeStr;
	}

	bool Init() override
	{
		if (!FMaterial::Init())
		{
			return false;
		}

		Shader->Use();
		Shader->SetLightingModel(ELightingModel::None);

		return true;
	}


	const std::string& GetVsSrcCode() const override
	{
		static std::string CodeStr = R"(

			#version 410 core 
			
			layout (location = 0) in vec3 aPos;

			uniform mat4 model;
			uniform mat4 lightProjectionView;
			
			void main()
			{
			    gl_Position = lightProjectionView * model * vec4(aPos, 1.0);
			}

		)";

		return CodeStr;
	}
};

